<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8"/>
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
        <title>AJ Framework-打包与部署</title>
        <meta name="description" content="AJ Framework 一个基于 SpringMVC 构建的轻量级框架，旨在增强 SpringMVC 并使其更具 SpringBoot 的特性。它拥有许多小型组件，非常易于使用。" />
        <meta name="keywords" content="AJ Framework, ajaxjs, ajaxjs framework, java framework, web framework" />
        <meta name="viewport" content="width=device-width, initial-scale=1"/>
        <link rel="preconnect" href="https://fonts.googleapis.com" />
        <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
        <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@200..900&family=Noto+Serif:ital,wght@0,100..900;1,100..900&display=swap&family=Noto+Sans+SC:wght@100..900&display=swap" />
        <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@100..900&family=Noto+Serif:ital,wght@0,100..900;1,100..900&display=swap" /> 
        <link rel="stylesheet" href="https://framework.ajaxjs.com/static/new-ui/css/common.css" />
        <link rel="stylesheet" href="https://iam.ajaxjs.com/asset/main.css"/>
        <link rel="icon" type="image/x-icon" href="https://framework.ajaxjs.com/aj-logo/logo.ico"/>
        <script src="https://framework.ajaxjs.com/static/aj-docs/common.js"></script>
        <script>
            var _hmt = _hmt || [];
            (function() {
              var hm = document.createElement("script");
              hm.src = "https://hm.baidu.com/hm.js?a3dec1d9b9415edd86b54c1fb3d02f19";
              var s = document.getElementsByTagName("script")[0];
              s.parentNode.insertBefore(hm, s);
            })();
        </script>
    </head>
    <body>
        <nav>
            <div>
                <div class="links">
                    <a href="/">🏠 首页</a>
                    | ⚙️ 源码:
                    <a target="_blank" href="https://github.com/lightweight-component/aj-framework">Github</a>/<a target="_blank" href="https://gitcode.com/lightweight-component/aj-framework">Gitcode</a>
                    |
                    <a href="/common/contact">✉️ 联系</a>
                </div>
                <h1>
                    <img src="https://framework.ajaxjs.com/aj-logo/logo.png" style="vertical-align: middle;height: 45px;margin-bottom: 6px;" />
                    AJ Framework
                </h1>
                <h3>轻量级 Java 快速开发框架
                </h3>
            </div>
        </nav>
        <div>
            <menu>
                
                <ul>
                    <li class="selected">
                        <a href="/">首页</a>
                    </li>
                </ul>
                <h3>框架基本用法</h3>
                <ul>
                    <li>
                        <a href="/framework/init">初始化一个项目</a>
                    </li>
                    <li>
                        <a href="/framework/controller">简化控制器为接口</a>
                    </li>
                    <li>
                        <a href="/framework/unified-return">统一对象返回</a>
                    </li>
                    <li>
                        <a href="/framework/unified-ex">统一异常处理</a>
                    </li>
                    <li>
                        <a href="/framework/package">打包与部署</a>
                    </li>
                </ul>
                <h3>常用组件</h3>
                <ul>
                    <li>
                        <a href="/component/db">数据库访问</a>
                    </li>
                    <li>
                        <a href="/component/bean-validator/">Bean 实体校验</a>
                    </li>
                    <li>
                        <a href="/component/security">安全组件、用户系统</a>
                    </li>
                    <li>
                        <a href="/component/lite-c/">使用简单本地缓存</a>
                    </li>
                  <li>
                       <a href="/component/cache/">使用多级缓存</a>
                   </li>
                </ul>

                <h3>其他</h3>
                <ul>
                    <li><a href="/common/contact">联系</a></li>
                </ul>
            </menu>
            <article class="aj-text chinese">
                <h1>打包与部署</h1>
<h2>打包</h2>
<p>最终打包为 JAR 包。执行 Maven <code>package</code> 命令即可。</p>
<blockquote>
<p>⚠️ 注意：依赖包会拷贝到 <code>lib</code> 目录，而不是打包成一个巨大的 Fat Jar。相关插件已在父 POM 引用的 <code>aj-common-parent</code> 中集成。</p>
</blockquote>
<p>Maven 依赖是一个复杂的过程，很容易导致依赖出问题（版本冲突、Scope定义错误等等）就导致程序起不来，头都大，明明运行 ok
的，这时候你就要检测一下 jar 里面的<code>MANIFEST.MF</code>定义，
与正常的文件 text 对比一下，看缺那些包或者版本不对。</p>
<h2>一键部署</h2>
<p>可以通过 Maven 插件一键部署到 SSH 服务器。在 <code>pom.xml</code> 中添加 <code>build</code> 节点并修改相关配置。</p>
<p>具体参阅： ↗ <a href="https://blog.csdn.net/zhangxin09/article/details/132456075">Maven 一键部署到 SSH 服务器</a></p>
<pre><code class="language-xml">
&lt;build&gt;
    &lt;plugins&gt;
        &lt;!-- 一键部署到服务器 SSH --&gt;
        &lt;plugin&gt;
            &lt;groupId&gt;org.codehaus.mojo&lt;/groupId&gt;
            &lt;artifactId&gt;wagon-maven-plugin&lt;/artifactId&gt;
            &lt;version&gt;2.0.2&lt;/version&gt;

            &lt;executions&gt;
                &lt;execution&gt;
                    &lt;id&gt;upload-deploy&lt;/id&gt;
                    &lt;!-- 运行 install 打包的同时运行 upload-single 和 sshexec --&gt;
                    &lt;phase&gt;install&lt;/phase&gt;
                    &lt;goals&gt;
                        &lt;goal&gt;upload-single&lt;/goal&gt;
                        &lt;goal&gt;sshexec&lt;/goal&gt;
                    &lt;/goals&gt;
                    &lt;configuration&gt;
                        &lt;!-- 指定 SSH 账号 --&gt;
                        &lt;serverId&gt;xxx.com&lt;/serverId&gt;
                        &lt;!-- 要更新的 jar 包 --&gt;
                        &lt;fromFile&gt;target/xxx.jar&lt;/fromFile&gt;
                        &lt;!-- 服务器部署位置 --&gt;
                        &lt;url&gt;${ssh.url.iam}&lt;/url&gt;
                        &lt;!-- 重启脚本：先切换目录，才能正确执行脚本 --&gt;
                        &lt;commands&gt;
                            &lt;command&gt;cd /xxx/service/aj-iam; ./startup.sh&lt;/command&gt;
                        &lt;/commands&gt;
                        &lt;!-- 显示运行命令的输出结果 --&gt;
                        &lt;displayCommandOutputs&gt;true&lt;/displayCommandOutputs&gt;
                    &lt;/configuration&gt;
                &lt;/execution&gt;
            &lt;/executions&gt;
        &lt;/plugin&gt;
    &lt;/plugins&gt;
&lt;/build&gt;
</code></pre>
<p>不知为何不能选择<code>deploy</code>阶段，只能选择<code>package</code>或<code>install</code>。</p>

            </article>
        </div>
        <footer>
             开源框架 <a href="https://framework.ajaxjs.com" target="_blank">AJ-Framework</a> 首页。联系方式：
             frank@ajaxjs.com，<a href="https://blog.csdn.net/zhangxin09" target="_blank">作者博客</a>
             <br />
             <br />
             Copyright © 2025 Frank Cheung. All rights reserved.
         </footer>
    </body>
</html>